<?php
class KM_Contacto_Notificador
{
	private $accesoBD;

	public function __construct(AccesoBD $accesoBD)
	{
		$this->accesoBD = $accesoBD;
	}

	public function notifica (KM_Contacto $contacto)
	{
		bxload("Correo");
		
		$navegante        = $contacto->getPropiedad ("email");
		$modelo           = new KM_Contacto_Modelo($this->accesoBD);
		$configuracion    = $modelo->recuperaConfiguracion();
		$usuario          = $configuracion->getPropiedad("usuario");
		$password         = $configuracion->getPropiedad("password");
		$servidor         = $configuracion->getPropiedad("servidor");
		$asunto           = $configuracion->getPropiedad("asunto");
		$from             = $configuracion->getPropiedad("email");
		$mensaje          = $contacto->getPropiedad("mensaje");
		
		$plantilla = dirname (__FILE__) . DIRECTORY_SEPARATOR . "correo.tpl";
		$mapa      = array();
		
		$mapa["__NOMBRE__"]       = $contacto->getPropiedad("nombre");
		$mapa["__APELLIDOS__"]    = $contacto->getPropiedad("apellidos");
		$mapa["__REFERENCIA__"]   = $contacto->getPropiedad("referencia");
		$mapa["__DEPARTAMENTO__"] = $contacto->getPropiedad("departamento");
        
		$datosCorreo  = new DatosServidorCorreo($usuario, $password, $servidor);
        $emisorCorreo = new Correo($datosCorreo); 
        
        $emisorCorreo->envia($from, $asunto, Reemplazador::reemplaza($plantilla, $mapa));
        $emisorCorreo->envia($navegante, $asunto, Reemplazador::reemplaza($plantilla, $mapa));
	}
}
?>